#include "stdafx.h"
#include "LinkList.h"
#include <unordered_set>

using namespace std;

void deDuplicate(LinkList ll)
{
	unordered_set<int> myset;
	if(!ll.head)
		return;
	Node* pt = ll.head;
	
	myset.insert(pt->data);

	while(pt->next)
	{
		if(myset.find(pt->next->data) != myset.end())
		{
			Node* tmp = pt->next;
			pt->next = tmp->next;
			delete tmp;
		}
		else
		{
			myset.insert(pt->next->data);
			pt = pt->next;
		}
		
	}
}


#ifdef RUN_2_1
int main()
{
	LinkList ll;
	ll.appendToTail(1);
	ll.appendToTail(1);
	ll.appendToTail(2);
	ll.appendToTail(4);
	ll.appendToTail(3);
	ll.appendToTail(3);
	ll.appendToTail(3);
	ll.appendToTail(4);
	ll.print();

	deDuplicate(ll);
	ll.print();

	getchar();
}
#endif